home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / awt / Container.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  4.3 KB  |  265 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.ContainerPeer;
  4. import java.io.PrintStream;
  5.  
  6. public abstract class Container extends Component {
  7.    int ncomponents;
  8.    Component[] component = new Component[4];
  9.    LayoutManager layoutMgr;
  10.  
  11.    Container() {
  12.    }
  13.  
  14.    public int countComponents() {
  15.       return this.ncomponents;
  16.    }
  17.  
  18.    public synchronized Component getComponent(int var1) {
  19.       if (var1 >= 0 && var1 < this.ncomponents) {
  20.          return this.component[var1];
  21.       } else {
  22.          throw new ArrayIndexOutOfBoundsException("No such child: " + var1);
  23.       }
  24.    }
  25.  
  26.    public synchronized Component[] getComponents() {
  27.       Component[] var1 = new Component[this.ncomponents];
  28.       System.arraycopy(this.component, 0, var1, 0, this.ncomponents);
  29.       return var1;
  30.    }
  31.  
  32.    public Insets insets() {
  33.       ContainerPeer var1 = (ContainerPeer)super.peer;
  34.       return var1 != null ? var1.insets() : new Insets(0, 0, 0, 0);
  35.    }
  36.  
  37.    public Component add(Component var1) {
  38.       return this.add(var1, -1);
  39.    }
  40.  
  41.    public synchronized Component add(Component var1, int var2) {
  42.       if (var2 <= this.ncomponents && (var2 >= 0 || var2 == -1)) {
  43.          if (var1 instanceof Container) {
  44.             for(Container var3 = this; var3 != null; var3 = var3.parent) {
  45.                if (var3 == var1) {
  46.                   throw new IllegalArgumentException("adding container's parent to itself");
  47.                }
  48.             }
  49.          }
  50.  
  51.          if (var1.parent != null) {
  52.             var1.parent.remove(var1);
  53.          }
  54.  
  55.          if (this.ncomponents == this.component.length) {
  56.             Component[] var4 = new Component[this.ncomponents * 2];
  57.             System.arraycopy(this.component, 0, var4, 0, this.ncomponents);
  58.             this.component = var4;
  59.          }
  60.  
  61.          if (var2 != -1 && var2 != this.ncomponents) {
  62.             System.arraycopy(this.component, var2, this.component, var2 + 1, this.ncomponents - var2);
  63.             this.component[var2] = var1;
  64.             ++this.ncomponents;
  65.          } else {
  66.             this.component[this.ncomponents++] = var1;
  67.          }
  68.  
  69.          var1.parent = this;
  70.          ((Component)this).invalidate();
  71.          if (super.peer != null) {
  72.             var1.addNotify();
  73.          }
  74.  
  75.          return var1;
  76.       } else {
  77.          throw new IllegalArgumentException("illegal component position");
  78.       }
  79.    }
  80.  
  81.    public synchronized Component add(String var1, Component var2) {
  82.       Component var3 = this.add(var2);
  83.       LayoutManager var4 = this.layoutMgr;
  84.       if (var4 != null) {
  85.          var4.addLayoutComponent(var1, var2);
  86.       }
  87.  
  88.       return var3;
  89.    }
  90.  
  91.    public synchronized void remove(Component var1) {
  92.       if (var1.parent == this) {
  93.          for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  94.             if (this.component[var2] == var1) {
  95.                if (super.peer != null) {
  96.                   var1.removeNotify();
  97.                }
  98.  
  99.                if (this.layoutMgr != null) {
  100.                   this.layoutMgr.removeLayoutComponent(var1);
  101.                }
  102.  
  103.                var1.parent = null;
  104.                System.arraycopy(this.component, var2 + 1, this.component, var2, this.ncomponents - var2 - 1);
  105.                this.component[--this.ncomponents] = null;
  106.                ((Component)this).invalidate();
  107.                return;
  108.             }
  109.          }
  110.       }
  111.  
  112.    }
  113.  
  114.    public synchronized void removeAll() {
  115.       Component var1;
  116.       for(; this.ncomponents > 0; var1.parent = null) {
  117.          var1 = this.component[--this.ncomponents];
  118.          this.component[this.ncomponents] = null;
  119.          if (super.peer != null) {
  120.             var1.removeNotify();
  121.          }
  122.  
  123.          if (this.layoutMgr != null) {
  124.             this.layoutMgr.removeLayoutComponent(var1);
  125.          }
  126.       }
  127.  
  128.       ((Component)this).invalidate();
  129.    }
  130.  
  131.    public LayoutManager getLayout() {
  132.       return this.layoutMgr;
  133.    }
  134.  
  135.    public void setLayout(LayoutManager var1) {
  136.       this.layoutMgr = var1;
  137.       ((Component)this).invalidate();
  138.    }
  139.  
  140.    public synchronized void layout() {
  141.       LayoutManager var1 = this.layoutMgr;
  142.       if (var1 != null) {
  143.          var1.layoutContainer(this);
  144.       }
  145.  
  146.    }
  147.  
  148.    public synchronized void validate() {
  149.       super.validate();
  150.  
  151.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  152.          Component var2 = this.component[var1];
  153.          if (!var2.valid) {
  154.             var2.validate();
  155.          }
  156.       }
  157.  
  158.    }
  159.  
  160.    public synchronized Dimension preferredSize() {
  161.       LayoutManager var1 = this.layoutMgr;
  162.       return var1 != null ? var1.preferredLayoutSize(this) : super.preferredSize();
  163.    }
  164.  
  165.    public synchronized Dimension minimumSize() {
  166.       LayoutManager var1 = this.layoutMgr;
  167.       return var1 != null ? var1.minimumLayoutSize(this) : super.minimumSize();
  168.    }
  169.  
  170.    public void paintComponents(Graphics var1) {
  171.       for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  172.          Component var3 = this.component[var2];
  173.          if (var3 != null) {
  174.             Graphics var4 = var1.create(var3.x, var3.y, var3.width, var3.height);
  175.  
  176.             try {
  177.                var3.paintAll(var4);
  178.             } finally {
  179.                var4.dispose();
  180.             }
  181.          }
  182.       }
  183.  
  184.    }
  185.  
  186.    public void printComponents(Graphics var1) {
  187.       for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  188.          Component var3 = this.component[var2];
  189.          if (var3 != null) {
  190.             Graphics var4 = var1.create(var3.x, var3.y, var3.width, var3.height);
  191.  
  192.             try {
  193.                var3.printAll(var4);
  194.             } finally {
  195.                var4.dispose();
  196.             }
  197.          }
  198.       }
  199.  
  200.    }
  201.  
  202.    public void deliverEvent(Event var1) {
  203.       Component var2 = this.locate(var1.x, var1.y);
  204.       if (var2 != null && var2 != this) {
  205.          var1.translate(-var2.x, -var2.y);
  206.          var2.deliverEvent(var1);
  207.       } else {
  208.          ((Component)this).postEvent(var1);
  209.       }
  210.    }
  211.  
  212.    public Component locate(int var1, int var2) {
  213.       if (!((Component)this).inside(var1, var2)) {
  214.          return null;
  215.       } else {
  216.          for(int var3 = 0; var3 < this.ncomponents; ++var3) {
  217.             Component var4 = this.component[var3];
  218.             if (var4 != null && var4.inside(var1 - var4.x, var2 - var4.y)) {
  219.                return var4;
  220.             }
  221.          }
  222.  
  223.          return this;
  224.       }
  225.    }
  226.  
  227.    public synchronized void addNotify() {
  228.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  229.          this.component[var1].addNotify();
  230.       }
  231.  
  232.       super.addNotify();
  233.    }
  234.  
  235.    public synchronized void removeNotify() {
  236.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  237.          this.component[var1].removeNotify();
  238.       }
  239.  
  240.       super.removeNotify();
  241.    }
  242.  
  243.    protected String paramString() {
  244.       String var1 = super.paramString();
  245.       LayoutManager var2 = this.layoutMgr;
  246.       if (var2 != null) {
  247.          var1 = var1 + ",layout=" + var2.getClass().getName();
  248.       }
  249.  
  250.       return var1;
  251.    }
  252.  
  253.    public void list(PrintStream var1, int var2) {
  254.       super.list(var1, var2);
  255.  
  256.       for(int var3 = 0; var3 < this.ncomponents; ++var3) {
  257.          Component var4 = this.component[var3];
  258.          if (var4 != null) {
  259.             var4.list(var1, var2 + 1);
  260.          }
  261.       }
  262.  
  263.    }
  264. }
  265.